package com.hsmpay.mobile.service.account;

import com.hsmpay.common.service.BaseService;
import com.hsmpay.mobile.pojo.trans.TransOrder;

import java.io.Serializable;

/**
 * 账务管理 提现  服务接口 cashMoneyService
 *
 * @param <Entity>
 * @param <Query>
 * @author 颜铃璋
 *         创建时间：2014-3-19
 */
public interface CashMoneyService<Entity extends Serializable, Query extends Object> extends BaseService<Entity, Query> {
    /**
     * 提现
     *
     * @param transOrder
     * @return 1 提现成功 2 预存款不足
     * @throws Exception
     */
    public int cashMoney(TransOrder transOrder) throws Exception;

    /**
     * T+0提现 安全
     *
     * @param transOrder
     * @param cardCerId
     * @return 1 提现成功 2 预存款不足
     * @throws Exception
     */
    public int cashMoneySafe(TransOrder transOrder, Long cardCerId) throws Exception;

    /**
     * 微信公众号T+0提现 安全
     *
     * @param transOrder
     * @return 1 提现成功 2 预存款不足
     * @throws Exception
     */
    public int weChartCashMoneySafe(TransOrder transOrder) throws Exception;

    /**
     * T+1 提现
     *
     * @param transOrder
     * @return
     * @throws Exception
     */
    public int cashMoneyT1(TransOrder transOrder) throws Exception;

    /**
     * 秒到提现 确保生产提现订单 不判断备付金
     *
     * @param transOrder
     * @return 1 提现成功 2 预存款不足
     * @throws Exception
     */
    public int secondCashMoneySafe(TransOrder transOrder) throws Exception;
}
